package com.ohs.ohsoa.utils;

import java.util.List;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.ohs.ohsoa.utils.bean.requestBean.PageParam;

public class PageHelper {
	public static <T> PageInfo<T> startPage(PageParam<?> pageParam, List<T> list) {

		int startIndex = (pageParam.getIndexPage() - 1) * pageParam.getPageSize();
		int endIndex = Math.min(startIndex + pageParam.getPageSize(), list.size());

		int pageNum = pageParam.getIndexPage();
		if (startIndex > endIndex) {
			
			if(list.size()%pageParam.getPageSize() == 0) {
				startIndex = endIndex - pageParam.getPageSize();
				pageNum = list.size() / pageParam.getPageSize();
			}else {
				startIndex = endIndex - list.size()%pageParam.getPageSize();
				pageNum = list.size() / pageParam.getPageSize() +1;
			}
		}
		

		Page<T> page = new Page<T>(pageNum, pageParam.getPageSize());
		page.setTotal(list.size());

		page.addAll(list.subList(startIndex, endIndex));

		PageInfo<T> pageInfo = new PageInfo<T>(page);

		return pageInfo;
	}

}
